﻿package aidn.animation.text
{
	import flash.filters.DropShadowFilter;
	import flash.text.*;
	
	/**
	 * 埋め込みフォント テキストフィールド
	 */
	public class Text extends TextField
	{
		public static const GOTHIC :String = "MS ゴシック";
		public static const MINCHO :String = "MS 明朝";
		public static const MEIRYO :String = "Meiryo Bold";
		
		private var _format :TextFormat;
		
		/**
		 * テキストフィールド
		 * @param	font			フォント。
		 * @param	color			色。
		 * @param	size			フォントサイズ。
		 * @param	letterSpacing	間隔。
		 * @param	position		文字揃え。
		 * @param	select			選択可 or 不可。
		 */
		public function Text ( font :String = null, color :int = 0, size :int = 16, letterSpacing :Number = 1.0, position :String = "left", select :Boolean = false ) 
		{
			_format = new TextFormat();
			
			if ( font )
			{
				embedFonts = true;
				_format.font = font;
			}
			else		// not embed
			{
				_format.font = MEIRYO;
			}
			
			_format.size = size;
			_format.letterSpacing = letterSpacing;
			
			selectable = select;
			autoSize   = position;
			textColor  = color;
			
			defaultTextFormat = _format;
		}
		
		/**
		 * ドロップシャドウの付与
		 * @param	col		色。
		 * @param	amount	ぼかし量。
		 */
		public function setDropShadow ( col :int = 0x444444, amount :int = 6, strength :int = 1 ) :void
		{
			var ds :DropShadowFilter = new DropShadowFilter( 0, 45, col, 1, amount, amount, strength );
			filters = [ ds ];
		}
		
		/**
		 * 
		 * @param	font
		 * @param	color
		 * @param	size
		 * @param	letterSp
		 */
		public function setFormat ( font :String = null, color :int = 0, size :int = 32, letterSp :Number = 1.0 ) :void
		{
			_format = new TextFormat();
			
			if ( font )	_format.font = font;
			else		_format.font = MEIRYO;
			
			_format.size = size;
			_format.letterSpacing = letterSp;
			
			textColor = color;
			
			defaultTextFormat = _format;
		}
		
	}
}